package com.hs.srm.base.common.utils;

/**
 * Redis所有Keys
 *
 * @author Mark sunlightcs@gmail.com
 * @since 3.0.0 2017-07-18
 */
public class RedisKeys {

    /**
     * 分割字符，默认[:]，使用:可用于rdm分组查看
     */
	private static final String KEY_SPLIT_CHAR = ":";

    /**
     * 通配符
     */
    public static final String WILD_CARD = "*";

    public static String getSysConfigKey(String key){
        return "sys:config:" + key;
    }

    public static String getShiroSessionKey(String key){
        return "sessionid:" + key;
    }

    /**
     * key的前缀（module:biz)
     */
    public enum KeyPrefixEnum{
        ;

        private String module;
        private String biz;
        KeyPrefixEnum(String module, String biz){
            this.module = module;
            this.biz = biz;
        }
        public String getPrifix(){
            return this.module + RedisKeys.KEY_SPLIT_CHAR + this.biz;
        }
    }


    /**
     * redis的key键规则定义
     * @param prefix key的前缀
     * @param args 参数..
     * @return key
     */
    public static String keyBuilder(String prefix, String... args) {
        // 项目前缀
        StringBuilder key = new StringBuilder(prefix);
        // KEY_SPLIT_CHAR 为分割字符
        for (String arg : args) {
            key.append(KEY_SPLIT_CHAR).append(arg);
        }
        return key.toString();
    }



}
